home *** CD-ROM | disk | FTP | other *** search
/ SGI Freeware 1999 August / SGI Freeware 1999 August.iso / dist / fw_vim.idb / usr / freeware / share / vim / syntax / html.vim.z / html.vim
Encoding:
Text File  |  1998-10-28  |  10.3 KB  |  177 lines

  1. " Vim syntax file
  2. " Language:    HTML
  3. " Maintainer:    Claudio Fleiner <claudio@fleiner.com>
  4. " URL:        http://www.fleiner.com/vim/syntax/html.vim
  5. " Last change:    1998 Jan 12
  6.  
  7. " This syntax file will highlight all known html tags and arguments.
  8. " Unknwon tag names and unknown argument names are colored differently
  9. " so that the error is immediatly visible.
  10. " Javascript snippets are also colored in a way similar to java, however,
  11. " instead of black text the normal text is colored as 'Special' which makes
  12. " it easy to spot javascript inside html pages. Errors caused by wrong parens
  13. " are flagged too, though for some reason the coloring does not work
  14. " correctly.
  15.  
  16. " Remove any old syntax stuff hanging around
  17. syn clear
  18. syn case ignore
  19.  
  20. " Only tags and special chars (ä) are highlighted
  21. " Known tag names and arg names are colored the same way
  22. " as statements and types, while unknwon ones as function.
  23.  
  24. " mark illegal characters
  25. syn match htmlError "[<>&]"
  26.  
  27.  
  28. " tags
  29. syn match   htmlSpecial  contained "\\[0-9][0-9][0-9]\|\\."
  30. syn region  htmlString   contained start=+"+ skip=+\\\\\|\\"+ end=+"+ contains=htmlSpecial,javaScriptExpression
  31. syn region  htmlString   contained start=+'+ skip=+\\\\\|\\'+ end=+'+ contains=htmlSpecial,javaScriptExpression
  32. syn match   htmlValue    contained "=[\t ]*[^'" \t>][^ \t>]*"hs=s+1   contains=javaScriptExpression
  33. syn region  htmlEndTag             start=+</+    end=+>+              contains=htmlTagName,htmlTagError
  34. syn region  htmlTag                start=+<[^/]+ end=+>+              contains=htmlString,htmlTagName,htmlArg,htmlValue,htmlTagError,htmlEvent
  35. syn match   htmlTagError contained "[^>]<"ms=s+1
  36.  
  37. " tag names
  38. syn keyword htmlTagName contained address applet area a base basefont
  39. syn keyword htmlTagName contained big blockquote body br b caption center
  40. syn keyword htmlTagName contained cite code dd dfn dir div dl dt em font
  41. syn keyword htmlTagName contained form h1 h2 h3 h4 h5 h6 head hr html img
  42. syn keyword htmlTagName contained input isindex i kbd link li link map menu
  43. syn keyword htmlTagName contained meta ol option param pre p samp
  44. syn keyword htmlTagName contained select small strike strong style sub sup
  45. syn keyword htmlTagName contained table td textarea th title tr tt ul u var
  46.  
  47. " legal arg names
  48. syn keyword htmlArg contained action
  49. syn keyword htmlArg contained align alink alt archive background bgcolor
  50. syn keyword htmlArg contained border bordercolor cellpadding
  51. syn keyword htmlArg contained cellspacing checked clear code codebase color
  52. syn keyword htmlArg contained cols colspan content coords enctype face
  53. syn keyword htmlArg contained gutter height href hspace
  54. syn keyword htmlArg contained link lowsrc marginheight
  55. syn keyword htmlArg contained marginwidth maxlength method name prompt
  56. syn keyword htmlArg contained rel rev rows rowspan scrolling selected shape
  57. syn keyword htmlArg contained size src start target text type url
  58. syn keyword htmlArg contained usemap ismap valign value vlink vspace width wrap
  59. syn match   htmlArg contained "http-equiv"
  60. " Netscape extensions
  61. syn keyword htmlTagName contained frame frameset nobr span
  62. syn keyword htmlTagName contained layer ilayer nolayer spacer
  63. syn keyword htmlArg     contained frameborder noresize pagex pagey above below
  64. syn keyword htmlArg     contained left top visibility clip id noshade
  65. syn match   htmlArg     contained "z-index"
  66.  
  67.  
  68. " special characters
  69. syn match htmlSpecialChar "&[^;]*;"
  70.  
  71. " server-parsed commands
  72. syn region htmlPreProc start=+<!--#+ end=+-->+
  73.  
  74. " The real comments (this implements the comments as defined by html,
  75. " but not all html pages actually conform to it. Errors are flagged.
  76. syn region htmlComment                start=+<!+        end=+>+ contains=htmlCommentPart,htmlCommentError
  77. syn region htmlComment                start=+<!DOCTYPE+ end=+>+
  78. syn match  htmlCommentError contained "[^><!]"
  79. syn region htmlCommentPart  contained start=+--+        end=+--+
  80.  
  81. " JAVA SCRIPT
  82. syn keyword htmlTagName                contained noscript
  83.  
  84. " html events (i.e. arguments that include javascript commands)
  85. syn region htmlEvent        contained start=+on[a-z]\+\s*=[\t ]*'+ skip=+\\\\\|\\'+ end=+'+ contains=javaScriptSpecial,javaScriptNumber,javaScriptLineComment,javaScriptComment,javaScriptStringD,javaStringCharacter,javaStringSpecialCharacter,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptFunction,javaScriptBoolean,javaScriptBraces,javaScriptParen,javaScriptParenError
  86. syn region htmlEvent        contained start=+on[a-z]\+\s*=[\t ]*"+ skip=+\\\\\|\\"+ end=+"+ contains=javaScriptSpecial,javaScriptNumber,javaScriptLineComment,javaScriptComment,javaScriptStringS,javaStringCharacter,javaStringSpecialCharacter,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptFunction,javaScriptBoolean,javaScriptBraces,javaScriptParen,javaScriptParenError
  87.  
  88. " a javascript expression is used as an arg value
  89. syn region  javaScriptExpression                 start=+&{+ end=+};+ contains=javaScriptSpecial,javaScriptNumber,javaScriptLineComment,javaScriptComment,javaScriptStringS,javaScriptStringD,javaStringCharacter,javaScriptSpecialCharacter,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptBoolean,javaScriptFunction
  90.  
  91. " javascript starts with <SCRIPT and ends with </SCRIPT>
  92. syn region  javaScript                           start=+<script+ end=+</script>+ contains=javaScriptSpecial,javaScriptNumber,javaScriptLineComment,javaScriptComment,javaScriptStringS,javaScriptStringD,javaStringCharacter,javaStringSpecialCharacter,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptFunction,javaScriptBoolean,javaScriptBraces,javaScriptParen,javaScriptParenError
  93. syn match   javaScriptLineComment      contained "\/\/.*$"
  94. syn match   javaScriptCommentSkip      contained "^\s*\*\($\|\s\+\)"
  95. syn region  javaScriptCommentString    contained start=+"+  skip=+\\\\\|\\"+  end=+"+ end=+\*/+me=s-1,he=s-1 contains=javaScriptSpecial,javaScriptCommentSkip
  96. syn region  javaScriptComment2String   contained start=+"+  skip=+\\\\\|\\"+  end=+$\|"+  contains=javaScriptSpecial
  97. syn region  javaScriptComment          contained start="/\*"  end="\*/" contains=javaScriptCommentString,javaScriptCharacter,javaScriptNumber
  98. syn match   javaScriptSpecial          contained "\\[0-9][0-9][0-9]\|\\."
  99. syn region  javaScriptStringD          contained start=+"+  skip=+\\\\\|\\"+  end=+"+  contains=javaScriptSpecial
  100. syn region  javaScriptStringS          contained start=+'+  skip=+\\\\\|\\'+  end=+'+  contains=javaScriptSpecial
  101. syn match   javaScriptSpecialCharacter contained "'\\.'"
  102. syn match   javaScriptNumber           contained "-\=\<[0-9]\+L\=\>\|0[xX][0-9a-fA-F]\+\>"
  103. syn keyword javaScriptConditional      contained if else
  104. syn keyword javaScriptRepeat           contained while for
  105. syn keyword javaScriptBranch           contained break continue
  106. syn keyword javaScriptOperator         contained new in
  107. syn keyword javaScriptType             contained this var
  108. syn keyword javaScriptStatement        contained return with
  109. syn keyword javaScriptFunction         contained function
  110. syn keyword javaScriptBoolean          contained true false
  111. syn match   javaScriptBraces           contained "[{}]"
  112. " catch errors caused by wrong parenthesis
  113. syn region  javaScriptParen            contained start="(" end=")" contains=javaScriptSpecial,javaScriptNumber,javaScriptLineComment,javaScriptComment,javaScriptStringS,javaScriptStringD,javaStringCharacter,javaStringSpecialCharacter,javaScriptConditional,javaScriptRepeat,javaScriptBranch,javaScriptOperator,javaScriptType,javaScriptStatement,javaScriptFunction,javaScriptBoolean,javaScriptBraces,javaScriptParen
  114. syn match   javaScriptParenError       contained ")"
  115. syn match   javaScriptInParen          contained "[{}]"
  116.  
  117. " synchronizing (does not always work if a comment includes legal
  118. " html tags, but doing it right would mean to always start
  119. " at the first line, which is too slow)
  120. syn sync match htmlHighlight groupthere NONE "<[/a-zA-Z]"
  121. syn sync match htmlHighlight groupthere javaScript "<script"
  122. syn sync match htmlHighlightSkip "^.*['\"].*$"
  123. syn sync minlines=10
  124.  
  125. if !exists("did_html_syntax_inits")
  126.   let did_html_syntax_inits = 1
  127.   " The default methods for highlighting.  Can be overridden later
  128.   hi link htmlTag                       Function
  129.   hi link htmlEndTag                    Identifier
  130.   hi link htmlArg                       Type
  131.   hi link htmlTagName                   htmlStatement
  132.   hi link htmlValue                     Value
  133.   hi link htmlSpecialChar               Special
  134.  
  135.   hi link htmlSpecial                   Special
  136.   hi link htmlSpecialChar               Special
  137.   hi link htmlString                    String
  138.   hi link htmlStatement                 Statement
  139.   hi link htmlComment                   Comment
  140.   hi link htmlCommentPart               Comment
  141.   hi link htmlPreProc                   PreProc
  142.   hi link htmlValue                     String
  143.   hi link htmlCommentError              htmlError
  144.   hi link htmlTagError                  htmlError
  145.   hi link htmlEvent                     javaScript
  146.   hi link htmlError            Error
  147.  
  148.   hi link javaScript                    Special
  149.   hi link javaScriptExpression          javaScript
  150.   hi link javaScriptComment             Comment
  151.   hi link javaScriptLineComment         Comment
  152.   hi link javaScriptSpecial             javaScript
  153.   hi link javaScriptStringS             String
  154.   hi link javaScriptStringD             String
  155.   hi link javaScriptCharacter           Character
  156.   hi link javaScriptSpecialCharacter    javaScriptSpecial
  157.   hi link javaScriptNumber              javaScriptValue
  158.   hi link javaScriptConditional         Conditional
  159.   hi link javaScriptRepeat              Repeat
  160.   hi link javaScriptBranch              Conditional
  161.   hi link javaScriptOperator            Operator
  162.   hi link javaScriptType                Type
  163.   hi link javaScriptStatement           Statement
  164.   hi link javaScriptFunction            Function
  165.   hi link javaScriptBoolean             Boolean
  166.   hi link javaScriptError               Error
  167.   hi link javaScriptBraces              Function
  168.   hi link javaScriptParenError          javaScriptError
  169.   hi link javaScriptInParen             javaScriptError
  170.   hi link javaScriptParen               javaScript
  171.  
  172. endif
  173.  
  174. let b:current_syntax = "html"
  175.  
  176. " vim: ts=8
  177.